/**
 * Define context object
 */
export interface ContextItem {
  // Unique identifier of context
  key: ContextKeyEnum;
  // Context name, such as team_docs, file
  name: string;
  // Value of context, the type of value is different for different types of context
  value: ContextValueType;
}

export enum ContextKeyEnum {
  // Enterprise knowledge base context
  TEAM_DOCS = 'team_docs',
  // RAG context within the workspace
  WORKSPACE_RAG = 'workspace_rag',
  // User input context
  USER_INPUT = 'user_input_text',
  // Selected code context by the user
  SELECTED_CODE = 'selected_code',
}

export type ContextValueType = string | number | string[];
